home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / ddj0290.arc / MARGULIS.LST < prev    next >
File List  |  1990-01-07  |  2KB  |  80 lines

  1. _PROGRAMMING RISC ENGINES_
  2. by Neal Margulis
  3.  
  4. Example 1:  This conversioε routine converts days and hours into
  5. total hours
  6.  
  7. /* convert days ª hours into hours */
  8. /* C code */
  9. int convert(days, hours)
  10.    register unsigned int days, hours;
  11. {
  12.    unsigned int total;
  13.    total = days * 24 + hours;
  14.    return (total);
  15. }
  16. /* Compiler generated asm code */
  17.     .file    "hours.c"
  18. _convert:
  19.     shl    2,r16,r28
  20.     subs    r28,r16,r16
  21.     shl    3,r16,r16
  22.     bri    r1
  23.      adds    r17,r16,r16
  24. //_total    r16    local
  25. //_days    r16    local
  26. //_hours    r17    local
  27.  
  28.  
  29.  
  30. Example 2: A subroutine called sum_ints that adds a series of
  31. integers 
  32.  
  33. main()
  34. { int  sum,summer(),n,a[]; 
  35.       *
  36.       *
  37.  sum= summer(a,8);
  38.       *
  39.       *
  40. }
  41.       int summer (a,n)               
  42.       int *a,n;
  43. √     int i,sum=0;
  44.       for (i = n-1; i >=0 ; i--)
  45.     sum = sum + a[i];
  46.       return(sum);
  47. }
  48.       .filσ   "sum.c"
  49.           *
  50.       mo÷     r7,r16
  51.       cal∞    _summer
  52.       o≥      8,r0,r17
  53.       mo÷     r16,r17
  54.           *
  55.           *
  56. _summer:
  57.       mo÷     r0,r18
  58.       add≤    -1,r17,r17
  59.       sh∞     2,r17,r28
  60.       add≤    r16,r28,r28
  61.       add≤    1,r17,r17
  62.       add≤    -1,r0,r20
  63.       blß     r20,r17,.L65
  64.       mo÷     r28,r16
  65. .L65:
  66.       blß     r20,r17,.L43
  67.         nop
  68.       b≥      .L42
  69.     nop
  70. .L43:
  71.       ld.∞     0(r16),r19
  72.       add≤     -4,r16,r16
  73.       blß      r20,r17,.L43
  74.       add≤     r19,r18,r18
  75. .L42:
  76.       brΘ      r1
  77.       mo÷      r18,r16
  78. //_ß  r1╢      local
  79. //_ε  r1╖      local
  80.